home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Interactive Media Design Review 1999
/
Interactive Media Design Review 1999.iso
/
pc
/
Demos
/
Herois
/
Codigo.Cst
/
00040_Script_Textos Util
< prev
next >
Wrap
Text File
|
1999-03-19
|
14KB
|
447 lines
-- Abre arquivo e tabelas com textos
on abreTextosDB
global gTextosDB, gSimples, gVerbetes, gLinks
set gTextosDB =¼
new(Xtra "V12Dbe",the moviePath & "textos.v12","ReadWrite","no")
if NOT objectP(gTextosDB) then
Alert("Cannot open database: textos.v12")
exit
end if
set gVerbetes = new(Xtra "V12table",mGetRef(gTextosDB),"verbetes")
set gLinks = new(Xtra "V12table",mGetRef(gTextosDB),"links")
set gSimples = new(Xtra "V12table", mGetRef(gTextosDB), "simples")
end
on fechaTextosDB
global gTextosDB, gSimples, gVerbetes, gLinks,
set gSimples = 0
set gVerbetes = 0
set gLinks = 0
set gTextosDB = 0
end
-- Recria arquivo do V12 e importa textos
on fazTextosDB
v12TextosDB
ImportaTextosDB
importaLinks
end
on v12TextosDB
-- Cria base de dados para textos
fechaTextosDB
set f = new(xtra "fileio")
openFile(f,the moviePath & "textos.v12", 2)
delete(f)
closeFile(f)
set f = 0
criaTextosDB
put "textos.v12 reinicializado"
end
on ImportaTextosDB
abreTextosDB
global gSimplesIndice
set gSimplesIndice = 10000
abreArqs
global garqTextos, garqLista, garqControle
put Integer(leAteFimDeLinha(garqLista)) into arqNum
repeat while arqNum > 0
put "Arquivo sendo importado: " & arqNum
if arqNum < 10000 then importaSimples(arqNum)
else importaVerbete(arqNum)
put Integer(leAteFimDeLinha(garqLista)) into arqNum
end repeat
fechaTextosDB
fechaArqs
importaLinks
end
on LeArquivoTexto arq
set f = new(xtra "fileio") -- Create an instance of FileIO
openFile(f, the moviePath & arq, 1) -- Open the file
put readFile(f) into strText
closeFile(f)
return strText
end
on leTexto arq, linhas
put 0 into counter
put "" into strTexto
repeat while counter < linhas
put readLine(arq) after strTexto
put 1+counter into counter
end repeat
return strTexto
end
on leEstilos arq, linhas
set texto = ""
put 0 into counter
repeat while counter < linhas
put leAteFimDeLinha(arq) into tipo
put Integer(leAteFimDeLinha(arq)) into palini
put Integer(leAteFimDeLinha(arq)) into palfim
put tipo & ", " & palini & ", " & palfim & RETURN after texto
put counter + 1 into counter
end repeat
return texto
end
on fazEstilos textoEstilos, membro
global gImportaSimples
put 1 into counter
-- if gImportaSimples then return
if textoEstilos = "" then return
set linhas = the number of lines in textoEstilos
set the fontStyle of member membro to "plain"
repeat while counter < the number of lines in textoEstilos
put item 1 of line counter of textoEstilos into tipo
put Integer(item 2 of line counter of textoEstilos) into palini
put Integer(item 3 of line counter of textoEstilos) into palfim
if tipo = "I" then
set the fontStyle of word palini to palfim¼
of member membro to "italic"
else
set the fontStyle of word palini to palfim¼
of member membro to "underline"
end if
put counter + 1 into counter
end repeat
end
on criaTextosDB
-- Abre base de dados
Set ClassDbe = Xtra "V12Dbe"
set dbObj = new(ClassDbe,the moviePath & "textos.v12","Create","no")
if NOT objectP(dbObj) then
Alert("Cannot create database: textos.v12")
exit
end if
-- Cria tabelas
mCreateTable(dbObj,"simples" )
mCreateField(dbObj,"simples","arqNum","Integer")
mCreateField(dbObj,"simples","textoPC","media",32768)
mCreateField(dbObj,"simples", "stringMac", "String", 512)
mCreateField(dbObj,"simples", "estilos", "String", 8192)
mCreateIndex(dbObj,"simples","index","unique","arqNum","ascending")
mCreateTable(dbObj,"verbetes" )
mCreateField(dbObj,"verbetes","arqNum","Integer")
mCreateField(dbObj,"verbetes","mediaNum","Integer")
mCreateField(dbObj,"verbetes","fotoCode", "String")
mCreateField(dbObj,"verbetes","texto0","Integer")
mCreateField(dbObj,"verbetes","texto1","Integer")
mCreateField(dbObj,"verbetes","texto2","Integer")
mCreateField(dbObj,"verbetes","texto3","Integer")
mCreateField(dbObj,"verbetes","texto4","Integer")
mCreateField(dbObj,"verbetes","texto5","Integer")
mCreateField(dbObj,"verbetes","texto6","Integer")
mCreateField(dbObj,"verbetes","texto7","Integer")
mCreateField(dbObj,"verbetes","texto8","Integer")
mCreateField(dbObj,"verbetes","texto9","Integer")
mCreateField(dbObj,"verbetes","texto10","Integer")
mCreateField(dbObj,"verbetes","texto11","Integer")
mCreateField(dbObj,"verbetes","texto12","Integer")
mCreateField(dbObj,"verbetes","texto13","Integer")
mCreateField(dbObj,"verbetes","texto14","Integer")
mCreateField(dbObj,"verbetes","texto15","Integer")
mCreateField(dbObj,"verbetes","texto16","Integer")
mCreateField(dbObj,"verbetes","texto17","Integer")
mCreateIndex(dbObj,"verbetes","index","duplicate","arqNum","ascending")
mCreateTable(dbObj,"links" )
mCreateField(dbObj,"links","arqNum","Integer")
mCreateField(dbObj,"links","mediaNum", "Integer")
mCreateField(dbObj,"links","subtitNum", "Integer")
mCreateField(dbObj,"links","palNum","Integer")
mCreateField(dbObj,"links","destArq","Integer")
mCreateField(dbObj,"links","destMedia", "Integer")
mCreateIndex(dbObj,"links","linksNdx","duplicate","arqNum","ascending")
-- Grava modificacoes e fecha
mBuild(dbObj)
set dbObj = 0
set ClassDbe = 0
end
on abreArqs
global garqTextos, garqLista, garqControle
set garqLista = new(xtra "fileio")
openFile(garqLista, the moviePath & "Convertidos/lista.txt", 1)
set garqTextos = new(xtra "fileio")
openFile(garqTextos, the moviePath & "Convertidos/sacolao.txt", 1)
set garqControle = new(xtra "fileio")
openFile(garqControle, the moviePath & "Convertidos/controle.txt", 1)
end
on fechaArqs
global garqTextos, garqLista, garqControle
closeFile(garqLista)
set garqLista = 0
closeFile(garqTextos)
set garqTextos = 0
closeFile(garqControle)
set garqControle = 0
end
on leMedia indice, memTexto
global gSimples
if indice = 0 then
set the text of member memTexto to "x"
return 1
end if
mSetCriteria(gSimples,"arqNum","=",indice)
mSelect(gSimples)
if the platform contains "Mac" then
set estilos = mGetField(gSimples, "estilos")
if estilos = "x" then
mGetMedia(gSimples,"textoPC", member memTexto)
else
set the text of member memTexto to mGetField(gSimples,"stringMac")
set the font of member memTexto to ¼
(the font of member "TipoLetra")
set the fontStyle of member memTexto to¼
(the fontStyle of member "TipoLetra")
fazEstilos(estilos,memTexto)
end if
else
mGetMedia(gSimples,"textoPC", member memTexto)
end if
return 0
end
on importaLinks
Set ClassDbe = Xtra "V12Dbe"
set dbObj = new(ClassDbe,the moviePath & "textos.v12","ReadWrite","no")
if NOT objectP(dbObj) then
Alert("Cannot open database: textos.v12")
exit
end if
set ClassTable = Xtra "V12Table"
set tbl = new(ClassTable,mGetRef(dbObj),"links")
set f = new( xtra "fileio")
openFile(f,the moviePath & "Convertidos/links.txt", 1)
set fLen = getLength(f)
set counter = 0
repeat while getPosition(f) < fLen-2
set arq to leAteFimDeLinha(f)
set media to leAteFimDeLinha(f)
set subtit to leAteFimDeLinha(f)
set pal to leAteFimDeLinha(f)
set destArq to leAteFimDeLinha(f)
set destMedia to leAteFimDeLinha(f)
mAddRecord(tbl)
mSetField(tbl,"arqNum", arq)
mSetField(tbl,"mediaNum", media)
mSetField(tbl,"subtitNum", subtit)
mSetField(tbl,"palNum", pal)
mSetField(tbl,"destArq", destArq)
mSetField(tbl,"destMedia",destMedia)
mUpdateRecord(tbl)
set counter = counter + 1
if counter mod 1000 = 0 then put counter & " registros"
end repeat
put "Links lidos: " & counter
mGoFirst(tbl)
mSelect(tbl)
put "Links total: " & mSelectCount(tbl)
closeFile(f)
set f = 0
set tbl = 0
set dbObj = 0
set ClassDbe = 0
end
--on preparaField membro, corFrente, corFundo
-- set the text of member membro to "x"
-- set the font of member membro to "Arial"
-- set the fontSize of member membro to 10
-- set the fontStyle of member membro to ""
-- set the foreColor of member membro to corFrente
-- set the backColor of member membro to corFundo
-- set the lineHeight of member membro to 16
--end
--on ajuda x
-- repeat with i = 0 to 19
-- set the lineHeight of member (x+i) to 16
-- end repeat
--end
on importaSimples arqNum
global garqTextos, garqLista, garqControle
global gImportaSimples
set gImportaSimples = true
if arqNum >= 10000 then return arqNum
put Integer(LeAteFimDeLinha(garqLista)) into mediaNum
put LeAteFimDeLinha(garqLista) into fotoCode
if arqNum = 5001 then
set mem = the number of member "TextoLicenciadores"
set memMac = 0
set cst = "Verbetes"
else if arqNum < 500 then
set mem = the number of member "TextoUniversos"
set mem = mem + arqNum - 1
set memMac = 0
set cst = "Universos"
else if arqNum < 1000 then
set mem = the number of member "TextosEspeciais"
set mem = mem + arqNum - 500
set memMac = 0
set cst = "Abertura"
else if arqNum < 2000 then
set mem = the number of member "TextoCriadores"
set memMac = mem
set cst = "Criadores"
else if arqNum < 2016 then
set mem = the number of member "TextoMomentos"
set mem = mem + arqNum - 2000
set memMac = 0
set cst = "Melhor"
else
alert("Que pagina Ä essa ?" + arqNum)
end if
-- Prepara novo registro
set res = mAddRecord(gSimples)
if (res < 0) then put "Erro: " & res
set res = mSetField(gSimples, "arqNum", arqNum)
if (res < 0) then put "Erro: " & res
-- set res = mSetField(gVerbetes, "fotoCode", fotoCode)
-- if (res < 0) then put "Erro: " & res
-- Carrega texto
put Integer(LeAteFimDeLinha(garqLista)) into linhasTexto
put Integer(LeAteFimDeLinha(garqLista)) into linhasControle
if (linhasTexto <= 0) then put "Erro: texto vazio: " & arqNum
set texto = leTexto(garqTextos,linhasTexto)
set the text of member mem to texto
set estilos = leEstilos(garqControle, linhasControle)
fazEstilos(estilos, mem)
set res = mSetMedia(gSimples, "textoPC", member mem)
if (res < 0) then put "Erro ImportaSimples mSetMedia: " &¼
res & ", arqNum=" & arqNum
-- Prepara novo registro
set res = mUpdateRecord(gSimples)
if (res < 0) then put "Erro ImportaSimples mSetMedia: " & res & ", arqNum=" & arqNum
set gImportaSimples = false
end
on importaVerbete arqNum
global garqTextos, garqLista, garqControle
global gSimples, gSimplesIndice
if arqNum < 10000 then return arqNum
put Integer(LeAteFimDeLinha(garqLista)) into mediaNum
put LeAteFimDeLinha(garqLista) into fotoCode
if mediaNum <> 1 then
set mem = the number of member "TextosMidias"
else
set mem = the number of member "TextosVerbetes"
end if
-- Prepara novo registro
set res = mAddRecord(gVerbetes)
if (res < 0) then Alert( "Erro ( mAddRecord ): " & res )
set res = mSetField(gVerbetes, "arqNum", arqNum)
if (res < 0) then Alert( "Erro ( mSetField ): " & res )
set res = mSetField(gVerbetes, "mediaNum", mediaNum)
if (res < 0) then Alert( "Erro ( mSetField ): " & res )
set res = mSetField(gVerbetes, "fotoCode", fotoCode)
if (res < 0) then Alert( "Erro ( mSetField ): " & res )
-- Reinicializa todos subtitulos
set x = "x"
repeat with subtitNum = 0 to 17
set the text of member (mem + subtitNum) to x
mSetField(gVerbetes, "texto" & subtitNum, 0)
set the fontStyle of member (mem + subtitNum) to ""
end repeat
-- Carrega e salva os textos de cada subtitulo
put Integer(LeAteFimDeLinha(garqLista)) into subtitNum
repeat while subtitNum >= 0
-- Le texto
put Integer(LeAteFimDeLinha(garqLista)) into linhasTexto
put Integer(LeAteFimDeLinha(garqLista)) into linhasControle
if (linhasTexto > 0) then
set texto = leTexto(garqTextos,linhasTexto)
if the number of words in texto > 0 then
mSetField(gVerbetes, "texto" & subtitNum, gSimplesIndice)
mAddRecord(gSimples)
mSetField(gSimples, "arqNum", gSimplesIndice)
set gSimplesIndice = gSimplesIndice + 1
if the number of chars in texto < 255 then set mac = true
else set mac = false
set the text of member (mem + subtitNum) to texto
set estilos = leEstilos(garqControle, linhasControle)
fazEstilos(estilos, (mem+subtitNum))
mSetMedia(gSimples, "textoPC", member (mem + subtitNum))
if mac then
mSetField(gSimples, "estilos", estilos)
mSetField(gSimples, "stringMac", texto)
else
mSetField(gSimples, "stringMac", "")
mSetField(gSimples, "estilos", "x")
end if
set res = mUpdateRecord(gSimples)
if (res < 0) then Alert "Erro Midias (mUpdateRecord): " & res
-- Nos dois "else" abaixo, o texto e' vazio!
else
mSetField(gVerbetes, "texto" & subtitNum, 0)
set the text of member (mem + subtitNum) to "x"
end if
else
mSetField(gVerbetes, "texto" & subtitNum, 0)
set the text of member (mem + subtitNum) to "x"
end if
put Integer(LeAteFimDeLinha(garqLista)) into subtitNum
end repeat
-- Salva registro
set res = mUpdateRecord(gVerbetes)
if (res < 0) then Alert "Erro Verbetes (mUpdateRecord): " & res
return 0
end